<?php

class Cliente extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('usuario_model', '', true);
        $this->load->model('maestra_model', '', true);
        $this->load->model('perfil_model', '', true);
        $this->load->model('ubigeo_model', '', true);
        $this->load->model('solusuario_model', '', true);
        $this->load->model('persona_model', '', true);
        $this->load->model('persona_natural_model', '', true);
        $this->load->model('persona_juridica_model', '', true);
        $this->load->model('departamento_model', '', true);
        $this->load->model('provincia_model', '', true);
        $this->load->model('distrito_model', '', true);
        $this->load->model('usuario_perfil_model', '', true);
        $this->load->model('tipo_documento_model', '', true);
        $this->load->library('form_validation');
        $this->load->helper('form');
        $this->load->helper('util');
    }

    function index2($a) {
        $data ['page_title'] = "Registrar Cliente";
        $data ['mensaje'] = "Ingresa un cliente nuevo";
        $departamento = $this->departamento_model->getDepartamento();
        $provincia = $this->provincia_model->getProvincia();
        $distrito = $this->distrito_model->getDistrito();
        $tipo_documento = $this->tipo_documento_model->getListTipoDocumento();
        $data ['departamento'] = $departamento;
        $data ['provincia'] = $provincia;
        $data ['distrito'] = $distrito;
        $data['tipo_documento'] = $tipo_documento;
        /**
         * Obtener todo los datos del usuario de solicitud usuario        
         * @author Leidy Uribe Marcos
         * @return result
         */
        $idSolUsuario = $this->solusuario_model->getId();
        $data ['idSolUsuario'] = $idSolUsuario ['id_solicitud_usuario'];
        $data ['id_ubigeo'] = $idSolUsuario ['id_ubigeo'];

        /** 
         * obteniendo los datos del ultimo usuario registrado incluyendo el nombre del estado de
         * la tabla maestra
         * @author Leidy Uribe Marcos
         */
        $idUsuario = $this->usuario_model->getIdUsuario();
        $data ['id_solicitud_usuario'] = $idUsuario ['id_solicitud_usuario'];
        $data ['id_estado_usuario'] = $idUsuario ['id_estado'];
        $data['estado_usuario'] = $idUsuario['estado'];

        /*
         * obteniendo el id_departamento, id_provincia y id_distrito
         * segun el id_ubigeo del ultimo usuario registrado
         */
        $ultUbigeo = $this->solusuario_model->getDeptId($data);
        $data ['idDept'] = $ultUbigeo ['cod_dept']; // el codigo del departamento
        $data ['idProv'] = $ultUbigeo ['cod_prov']; // el codigo de la provincia
        $data ['idDist'] = $ultUbigeo ['cod_dist']; // el codigo del distrito
        //
        // obteniendo el nombre del departamento seleccionado
        $dept = $this->departamento_model->getDepartamentoPorId($data);
        $data ['dept'] = $dept;

        // obteniendo el nombre de la provincia seleccionada
        $prov = $this->provincia_model->getProvinciaPorId($data);
        $data ['prov'] = $prov;

        // obteniendo el nombre del distrito seleccionado
        $dist = $this->distrito_model->getDistritoPorId($data);
        $data ['dist'] = $dist;

        $cliente = $this->solusuario_model->getDatosId($data);
        $data ['cliente'] = $cliente;

        if ($data ['estado_usuario'] == 'ACTIVO') {
            $data ['idUsuario'] = $idUsuario ['id_usuario'];
            $data ['estado_final'] = "ACTIVO";
        } else {
            $data ['estado_final'] = "INACTIVO";
        }

        /**
         * Obtener el id de la ultima persona registrada         
         * @author Leidy Uribe Marcos
         * @return array
         */
        $persona = $this->persona_model->getId();
        $data['id_tipo_cliente'] = $persona['id_tipo_cliente'];
        $idPersona = $persona ['id_persona'];

        /**
         * comparar el id de persona obtenida para ver si hay persona natural o juridica        
         * @author Leidy Uribe Marcos
         * @return array
         */
        $persona_juridica = $this->persona_juridica_model->getPersonaJuridica($idPersona);
        $persona_natural = $this->persona_natural_model->getPersonaNatural($idPersona);

        if (!empty($persona_juridica)) {
            $data ['persona_juridica'] = $persona_juridica;
        } else {
            $data ['persona_natural'] = $persona_natural;
            foreach ($persona_natural as $pn) {
                $data ['tip_doc'] = $pn->id_tipo_documento;
            }
            if ($data ['tip_doc'] == INT_DNI) {
                $data ['valor_doc_dni'] = "DNI";
            } else {
                $data ['valor_doc_carnet'] = "CARNET DE EXTRANJERÍA";
            }
        }
        /**
         * Obtener todos los estados generales ACTIVO e INACTIVO
         *
         * @author Leidy Uribe Marcos
         * @param int $idPerfil
         *        	Id Perfil
         * @return RESULT
         */
        $estados = $this->maestra_model->getEstados();
        $data ['estados'] = $estados;

        switch ($a) {
            case 1 :
                $data ['mensaje'] = "La operación se realizó satisfactoriamente.";
                $data ['class'] = "alert_success";
                break;
            case 2 :
                $data ['mensaje'] = "La operación se realizó satisfactoriamente.";
                $data ['class'] = "alert_success";
                break;
            case 3 :
                $data ['mensaje'] = "La operación se realizó satisfactoriamente.";
                $data ['class'] = "alert_success";
                break;
            case 4 :
                $data ['mensaje'] = "El usuario esta inactivo.";
                $data ['class'] = "alert_success";
                break;
            default:
			    $data['mensaje'] = "La operación se realizó satisfactoriamente. ";
			    $data['class'] = "alert_success";
        }

        $session_data = $this->session->userdata('logged_in');

        if ($session_data ['tipo_usuario'] == 1) {
            $this->load->view('cliente_view/cliente_new', $data);
        } else {
            redirect('principal', 'refresh');
        }
    }

    function editar() {
        $data ['page_title'] = "Registrar Cliente";
        $data ['mensaje'] = "Puede modificar datos del cliente";
        $departamento = $this->departamento_model->getDepartamento();
        $provincia = $this->provincia_model->getProvincia();
        $distrito = $this->distrito_model->getDistrito();
        $tipo_documento = $this->tipo_documento_model->getListTipoDocumento();
        $data['departamento'] = $departamento;
        $data['provincia'] = $provincia;
        $data['distrito'] = $distrito;
        $data['tipo_documento'] = $tipo_documento;
        
        // obtengo el id de usuario_view
        $data['id_usuario'] = $_GET['id'];
        
        // obteniendo los estados de la tabla maestra
        $estados = $this->maestra_model->getEstados();
        $data['estados'] = $estados;
        
        // obtengo los datos de usuario
        $usuario = $this->usuario_model->getUsuario($data);
        $data['id_solicitud_usuario'] = $usuario['id_solicitud_usuario']; //obtengo el id de solicitud usuario
        $idPersona = $usuario['id_persona']; //obtengo el id de persona
        $data['id_estado_usuario'] = $usuario['id_estado'];
        $data['estado_usuario'] = $usuario['estado'];
        
        // obtengo el tipo de cliente
        $tipo_cliente = $this->persona_model->getIdPersona($idPersona);
        if ($data['estado_usuario'] == STR_ESTADO_ACTIVO) {
            $data['idUsuario'] = $usuario['id_usuario'];  //obtengo el id de usuario
        } else {
            $data['id_usuario_inactivo'] = $usuario['id_usuario'];
        }
        foreach ($tipo_cliente as $tc) {
            $data['id_tipo_cliente'] = $tc->id_tipo_cliente;
        }
        
        // obtengo el id_ubigeo
        $id_ubigeo = $this->ubigeo_model->getUbigeoUsuario($data);
        $data ['id_ubigeo'] = $id_ubigeo ['id_ubigeo'];

        /*
         * obteniendo el id_departamento, id_provincia y id_distrito
         * segun el id_ubigeo del ultimo usuario registrado
         */
        $ultUbigeo = $this->solusuario_model->getDeptId($data);
        $data['idDept'] = $ultUbigeo ['cod_dept']; // el codigo del departamento
        $data['idProv'] = $ultUbigeo ['cod_prov']; // el codigo de la provincia
        $data['idDist'] = $ultUbigeo ['cod_dist']; // el codigo del distrito
        
        // obteniendo el nombre del departamento seleccionado
        $dept = $this->departamento_model->getDepartamentoPorId($data);
        $data['dept'] = $dept;

        // obteniendo el nombre de la provincia seleccionada
        $prov = $this->provincia_model->getProvinciaPorId($data);
        $data['prov'] = $prov;

        // obteniendo el nombre del distrito seleccionado
        $dist = $this->distrito_model->getDistritoPorId($data);
        $data['dist'] = $dist;

        // comparar el id de persona obtenida para ver si hay persona natural o juridica                
        $persona_juridica = $this->persona_juridica_model->getPersonaJuridica($idPersona);
        $persona_natural = $this->persona_natural_model->getPersonaNatural($idPersona);
        if (!empty($persona_juridica)) {
            $data ['persona_juridica_editar'] = $persona_juridica;
        } else {
            $data ['persona_natural_editar'] = $persona_natural;
            foreach ($persona_natural as $pn) {
                $data ['tip_doc_editar'] = $pn->id_tipo_documento;
            }
            if ($data ['tip_doc_editar'] = INT_DNI) {
                $data ['valor_doc_editar'] = "DNI";
            } else {
                $data ['valor_doc_editar'] = "CARNET DE EXTRANJERÍA";
            }
        }
        $cliente = $this->solusuario_model->getDatosSolicitud($data);
        $data ['cliente_editar'] = $cliente;

        $session_data = $this->session->userdata('logged_in');
        if ($session_data ['tipo_usuario'] == 1) {
            $this->load->view('cliente_view/cliente_new', $data);
        } else {
            redirect('principal', 'refresh');
        }
    }

    /**
     * metodo que permite a un cliente loguearse desde administrador
     * @author Leidy Uribe Marcos
     */
    function nuevo() {
        $data ['page_title'] = "Registrar Cliente";
        $data ['mensaje'] = "Ingresa un cliente nuevo";
        $departamento = $this->departamento_model->getDepartamento();
        $distrito = $this->distrito_model->getDistrito();
        $tipo_documento = $this->tipo_documento_model->getListTipoDocumento();
        $data ['departamento'] = $departamento;
        $data ['distrito'] = $distrito;
        $data['tipo_documento'] = $tipo_documento;
        $data['id_estado_usuario'] = '';
        $data['estado_usuario'] = '';
        $data['id_tipo_cliente'] = '';
        $this->load->view('cliente_view/cliente_new', $data);
    }

    function editarCliente() {
        //Obteniendo el usuario que esta realizando la operacion
        $session_data = $this->session->userdata('logged_in');
        $id = $session_data['id'];

        //Datos para la tabla usuario
        $data['id_usuario'] = $_POST['txtId'];
        //Datos para obtener el departamento, provincia y distrito
        $data ['departamento'] = $_POST ['cbxDepartamento'];
        $data ['provincia'] = $_POST ['cbxProvincia'];
        $data ['distrito'] = $_POST ['cbxDistrito'];
        /**
         *  * llamo a la funcion getubigeo y para esto creo el modelo ubigeo_model
         *  para obtener el id_ubigeo segun el codigo de departamento, provincia y distrito
         */
        $ubigeo = $this->ubigeo_model->getUbigeo($data);
        $data ['ubigeo'] = $ubigeo ['id_ubigeo'];
        $data ['usuario_modificacion'] = $id;
        $data ['fecha_modificacion'] = date('Y-m-d');
        //PARA GUARDAR EL IP DEL QUE REALIZO MODIFICACION
        $data ['ip'] = $this->input->ip_address();
        //datos del cliente
        $data ['usuario'] = $_POST ['txtUsuario'];
        $data ['password'] = $_POST ['txtPassword'];
        // Datos para el cliente
        $data ['direccion'] = $_POST ['txtDireccion'];
        $data ['correo'] = $_POST ['txtCorreo'];
        $data ['telefono'] = $_POST ['txtTelefono'];
        //obtengo la contraseña guardada de la base de datos en la tabla usuario
        $id_solicitud_usuario = $this->usuario_model->getUsername($data);
        $data['pass'] = $id_solicitud_usuario['password'];
        if (isset($_POST['grabar'])) {
            if ($data['pass'] == $data['password']) {
                //modificando en usuario
                $this->usuario_model->updateUsuarioClienteMismoPass($data);
            } else {
                //modificando en usuario
                $this->usuario_model->updateUsuarioCliente($data);
            }
        }

        //id de la tabla solicitud usuario
        $data['id_solicitud_usuario'] = $id_solicitud_usuario['id_solicitud_usuario'];
        $data['id_persona'] = $id_solicitud_usuario['id_persona'];

        //modificando en persona
        $this->persona_model->updatePersona($data);

        if ($_POST ['radio-set'] == '1') {
            $data ['nombres'] = $_POST ['txtNombres'];
            $data ['apellidos'] = $_POST ['txtApellidos'];
            $data ['documento'] = $_POST ['cbxDocumento'];
            $data ['numdoc'] = $_POST ['txtNumdoc'];
            $data ['nacimiento'] = formatoFecha($_POST['dNacimiento']);
            $data ['estado_solicitud'] = 1;

            //modifica en solicitud usuario
            $this->solusuario_model->updateSolicitudUsuario($data);

            //modifica en solicitud persona natural
            $this->persona_natural_model->updatePersonaNatural($data);
        } else {
            $data ['ruc'] = $_POST ['txtRuc'];
            $data ['razon'] = $_POST ['txtRazon'];
            $data ['estado_solicitud'] = 1;

            //modifica en solicitud usuario
            $this->solusuario_model->updateSolicitudUsuarioJuridica($data);

            //modifica en solicitud persona natural
            $this->persona_juridica_model->updatePersonaJuridica($data);
        }
        
		echo "<script language='javascript'>alert('SE REALIZO LOS CAMBIOS SATISFACTORIAMENTE');
				window.location.href='".base_url()."index.php/usuario';
			  </script>";
    }

    function insertar() {
        $this->form_validation->set_rules('txtNumdoc', 'Numero de Documento', 'trim|is_unique[solicitud_usuario.nro_documento]', 'trim|is_unique[persona_natural.nro_documento]');
        $this->form_validation->set_rules('txtRuc', 'Numero de RUC', 'trim|is_unique[solicitud_usuario.ruc]', 'trim|is_unique[persona_juridica.ruc]');
        $this->form_validation->set_rules('txtUsuario', 'Nombre del usuario', 'trim|is_unique[solicitud_usuario.username]');
        $this->form_validation->set_rules('txtCorreo', 'Ej: example@example.com', 'trim|is_unique[solicitud_usuario.correo]');
        $this->form_validation->set_message('is_unique', 'EL usuario ya se encuentra registrado');

        if ($this->form_validation->run() == FALSE) {
            // validacion incorrecta
            $data ['page_title'] = "Registrar Cliente";
            $data ['mensaje'] = "Ingresa un cliente nuevo";
            $departamento = $this->departamento_model->getDepartamento();
            $tipo_documento = $this->tipo_documento_model->getListTipoDocumento();
            $data ['departamento'] = $departamento;
            $data['tipo_documento'] = $tipo_documento;
            $data ['mensaje'] = 'El usuario ya se encuentra registrado';
            $data ['class'] = "alert_error";
            $data['estado_usuario'] = '';
            $data['id_estado_usuario'] = '';        
            $data['id_tipo_cliente'] = '';
            $session_data = $this->session->userdata('logged_in');

            if ($session_data ['tipo_usuario'] == 1) {
                $this->load->view('cliente_view/cliente_new', $data);
                // se coloca elseif porque tipo_usuario jala 3 posibilidades 1 admin, 2 cliente y 3 prov
            } else { // verificar ya que en la tabla perfil estan 3, 1 - administrador, 2 - cliente y 3 - proveedor
                $this->load->view('cliente_view/cliente_registro', $data);
            }
        } else {
            /*
             * 03/ 06/2015
             * llamo a ubigeo para insertarlo en persona enviando el id de
             * departamento, provincia y distrito
             */
            $data ['departamento'] = $_POST ['cbxDepartamento'];
            $data ['provincia'] = $_POST ['cbxProvincia'];
            $data ['distrito'] = $_POST ['cbxDistrito'];
            /*
             * 03/06/2015
             * llamo a la funcion getubigeo y para esto creo el modelo ubigeo_model
             */
            $ubigeo = $this->ubigeo_model->getUbigeo($data);
            $data ['ubigeo'] = $ubigeo ['id_ubigeo'];

            // Cogiendo id del usuario logeado
            $session_data = $this->session->userdata('logged_in');
            $id = $session_data ['id'];

            // Datos para el usuario y cliente
            if ($session_data ['tipo_usuario'] == 1) {
                $data ['usuario_registro'] = $id; // id del usuario logeado
            } else {
                $data ['usuario_registro'] = 0;
            }
            $data ['fecha_registro'] = date('Y-m-d H:i:s');

            // Datos para el usuario
            $data ['usuario'] = $_POST ['txtUsuario'];
            $data ['password'] = $_POST ['txtPassword'];

            // Datos para el cliente
            $data ['direccion'] = $_POST ['txtDireccion'];
            $data ['correo'] = $_POST ['txtCorreo'];
            $data ['telefono'] = $_POST ['txtTelefono'];
            $data ['estado_solicitud'] = 1;

            // OBTENIENDO EL ESTADO ACTIVO DE LA TABLA MAESTRA QUE POR DEFECTO SERA ACTIVO
            $idEstado = $this->maestra_model->getEstado();
            $data ['idEstado'] = $idEstado ['id_tabla_maestra'];

            // OBTENIENDO EL PERFIL
            $idPerfil = $this->perfil_model->getPerfilCliente();
            $data ['idPerfil'] = $idPerfil ['id_perfil'];

            // Insertando en persona natural o juridica
            if ($_POST ['radio-set'] == '1') {
                $data ['nombres'] = $_POST ['txtNombres'];
                $data ['apellidos'] = $_POST ['txtApellidos'];
                $data ['documento'] = $_POST ['cbxDocumento'];
                $data ['numdoc'] = $_POST ['txtNumdoc'];
                $data ['nacimiento'] = formatoFecha($_POST['dNacimiento']);
                $data ['tipo_cliente'] = INT_CLIENTE_INDIVIDUAL;

                $this->db->trans_begin();

                // INSERTANDO EN SOLICITUD_USUARIO
                $this->solusuario_model->insert_persona_natural($data);

                // INSERTANDO EN PERSONA
                $this->persona_model->insert($data);

                // Cogiendo el id de la persona recientemente registrada
                $idPersona = $this->persona_model->getId();
                $data ['idPersona'] = $idPersona ['id_persona'];

                // INSERTANDO EN PERSONA NATURAL
                $this->persona_natural_model->insert($data);

                // OBTIENE EL ID DE LA SOLICITUD_USUARIO RECIEN REGISTRADO
                $idSolUsuario = $this->solusuario_model->getId();
                $data ['idSolUsuario'] = $idSolUsuario ['id_solicitud_usuario'];
                
                $this->usuario_model->insert ( $data );

                /** obteniendo los datos del ultimo usuario registrado incluyendo el nombre del estado de
                 * la tabla maestra
                 * @author Leidy Uribe Marcos
                 */
                $idUsuario = $this->usuario_model->getIdUsuario();
                $data['estado_usuario'] = $idUsuario['estado'];

                if ($this->db->trans_status() === FALSE) {
                    $this->db->trans_rollback();
                } else {
                    $this->db->trans_commit();
                }
                
            } else {
                $data ['ruc'] = $_POST ['txtRuc'];
                $data ['razon'] = $_POST ['txtRazon'];
                $data ['tipo_cliente'] = INT_CLIENTE_CORPORATIVO;

                $this->db->trans_begin();

                // INSERTANDO EN SOLICITUD_USUARIO
                $this->solusuario_model->insert_persona_juridica($data);

                // OBTIENE EL ID DE LA SOLICITUD_USUARIO RECIEN REGISTRADO
                $idSolUsuario = $this->solusuario_model->getId();
                $data ['idSolUsuario'] = $idSolUsuario ['id_solicitud_usuario'];

                // INSERTANDO EN PERSONA
                $this->persona_model->insert($data);

                // Cogiendo el id de la persona recientemente registrada
                $idPersona = $this->persona_model->getId();
                $data ['idPersona'] = $idPersona ['id_persona'];

                $this->persona_juridica_model->insert($data);

                // Insertando en usuario
                $this->usuario_model->insert($data);

                /** obteniendo los datos del ultimo usuario registrado incluyendo el nombre del estado de
                 * la tabla maestra
                 * @author Leidy Uribe Marcos
                 */
                $idUsuario = $this->usuario_model->getIdUsuario();
                $data['estado_usuario'] = $idUsuario['estado'];

                if ($this->db->trans_status() === FALSE) {
                    $this->db->trans_rollback();
                } else {
                    $this->db->trans_commit();
                }
            }

            $this->db->trans_begin();

            // Cogiendo el id del usuario recientemente registrado
            $idUsuario = $this->usuario_model->getId();
            $data ['idUsuario'] = $idUsuario ['id_usuario'];

            // Insertando en usuario_perfil
            $this->usuario_perfil_model->insert($data);

            if ($this->db->trans_status() === FALSE) {
                $this->db->trans_rollback();
            } else {
                $this->db->trans_commit();
            }
            echo"<script type=\"text/javascript\">alert('SE REGISTRO EN EL SISTEMA')</script>";
            $this->index2(1);  
        }
    }

    function editarCuenta() {
        if (isset($_POST ['aceptar'])) {
            $data ['estado_usuario'] = $_POST ['cbxEstado'];
            if (empty($_POST['txtId'])) {
                $id_usuario = $this->usuario_model->getId();
                $data['id_usuario'] = $id_usuario['id_usuario'];
                $data['id_persona'] = $id_usuario ['id_persona'];
                $data['idSolUsuario'] = $id_usuario['id_solicitud_usuario'];
            } else {
                $data ['id_usuario'] = $_POST ['txtId'];
                $data ['tipo_cliente'] = $_POST ['rtipo'];
                /**
                 * obtengo el id_persona de la tabla usuario para actualizar en la tabla persona
                 *
                 * @author Leidy Uribe Marcos
                 */
                $idUsuario = $this->usuario_model->getUsername($data);
                $data ['id_persona'] = $idUsuario ['id_persona'];
                $data['idSolUsuario'] = $idUsuario['id_solicitud_usuario'];
            }
            $idPersona = $data['id_persona'];
            //obtengo el tipo de cliente
            $tipo_cliente = $this->persona_model->getIdPersona($idPersona);

            foreach ($tipo_cliente as $tc) {
                $data['id_tipo_cliente'] = $tc->id_tipo_cliente;
            }

            /** actualizo primero la tabla usuario
             * @author Leidy Uribe Marcos */
            $this->usuario_model->updateCuenta($data);
            $this->persona_model->updatePersonaCliente2($data);

            $this->index2(1);
        } else if (isset($_POST ['asignar'])) {
            $data ['page_title'] = "Asignar Perfil";
            $data ['id_usuario'] = $_POST ['txtId'];
            $usuario = $this->usuario_model->getUsername($data);
            $data ['id'] = $usuario ['username'];
            $data ['activa_cliente'] = "";
            $this->load->view('perfil_view/perfil_asignar', $data);
        }
    }

    function editarBandeja() {
        if (isset($_POST ['aceptar'])) {
            $data ['page_title'] = "Registrar Cliente";
            $data ['mensaje'] = "Puede modificar datos del cliente";
            $data ['estado_usuario'] = $_POST ['cbxEstado']; //obtengo el estado de usuario 2 o 3
            $data['id_usuario'] = $_POST['txtId']; //obtengo el id de usuario
            $departamento = $this->departamento_model->getDepartamento();
            $provincia = $this->provincia_model->getProvincia();
            $distrito = $this->distrito_model->getDistrito();
            $tipo_documento = $this->tipo_documento_model->getListTipoDocumento();
            $data ['departamento'] = $departamento;
            $data ['provincia'] = $provincia;
            $data ['distrito'] = $distrito;
            $data['tipo_documento'] = $tipo_documento;
            //obteniendo los estados de la tabla maestra
            $estados = $this->maestra_model->getEstados();
            $data['estados'] = $estados;

             /** obtengo el id_persona de la tabla usuario para actualizar en la tabla persona
             *
             * @author Leidy Uribe Marcos
             */
            $idUsuario = $this->usuario_model->getUsername($data);
            $data ['id_persona'] = $idUsuario ['id_persona'];
            $data['idSolUsuario'] = $idUsuario['id_solicitud_usuario'];
            $idPersona = $data['id_persona'];

            /** actualizo primero la tabla usuario
             * @author Leidy Uribe Marcos */
            $this->usuario_model->updateCuenta($data);

            //actualizamos la tabla solicitud_usuario
            if ($data['estado_usuario'] == 2) {
                $data['idUsuario'] = $_POST['txtId'];
            } else {
                $data['id_usuario_inactivo'] = $_POST['txtId'];
            }
            //obtengo el tipo de cliente
            $tipo_cliente = $this->persona_model->getIdPersona($idPersona);

            foreach ($tipo_cliente as $tc) {
                $data['id_tipo_cliente'] = $tc->id_tipo_cliente;
            }

            //actualizamos la tabla persona
            $this->persona_model->updatePersonaCliente2($data);
            $data['id_solicitud_usuario'] = $idUsuario['id_solicitud_usuario']; //obtengo el id de solicitud usuario
            $data['id_estado_usuario'] = $idUsuario['id_estado'];


            /* obtengo el id_ubigeo */
            $id_ubigeo = $this->ubigeo_model->getUbigeoUsuario($data);
            $data ['id_ubigeo'] = $id_ubigeo ['id_ubigeo'];

            /*
             * OBTENIENDO EL id_departamento, id_provincia y id_distrito
             * SEGUN EL id_ubigeo del ultimo usuario registrado
             */
            $ultUbigeo = $this->solusuario_model->getDeptId($data);
            $data ['idDept'] = $ultUbigeo ['cod_dept']; // el codigo del departamento
            $data ['idProv'] = $ultUbigeo ['cod_prov']; // el codigo de la provincia
            $data ['idDist'] = $ultUbigeo ['cod_dist']; // el codigo del distrito
            // obteniendo el nombre del departamento seleccionado
            $dept = $this->departamento_model->getDepartamentoPorId($data);
            $data ['dept'] = $dept;

            // obteniendo el nombre de la provincia seleccionada
            $prov = $this->provincia_model->getProvinciaPorId($data);
            $data ['prov'] = $prov;

            // obteniendo el nombre del distrito seleccionado
            $dist = $this->distrito_model->getDistritoPorId($data);
            $data ['dist'] = $dist;

            /**
             * comparar el id de persona obtenida para ver si hay persona natural o juridica
             *
             * @author Leidy Uribe Marcos
             * @return array
             */
            $persona_juridica = $this->persona_juridica_model->getPersonaJuridica($idPersona);
            $persona_natural = $this->persona_natural_model->getPersonaNatural($idPersona);
            if (!empty($persona_juridica)) {
                $data ['persona_juridica_editar'] = $persona_juridica;
            } else {
                $data ['persona_natural_editar'] = $persona_natural;
                foreach ($persona_natural as $pn) {
                    $data ['tip_doc_editar'] = $pn->id_tipo_documento;
                }
                if ($data ['tip_doc_editar'] = INT_DNI) {
                    $data ['valor_doc_editar'] = "DNI";
                } else {
                    $data ['valor_doc_editar'] = "CARNET DE EXTRANJERÍA";
                }
            }

            $cliente = $this->solusuario_model->getDatosSolicitud($data);
            $data ['cliente_editar'] = $cliente;

            $session_data = $this->session->userdata('logged_in');

            if ($session_data ['tipo_usuario'] == 1) {
                $this->load->view('cliente_view/cliente_new', $data);
            } else {
                redirect('principal', 'refresh');
            }
        } else if (isset($_POST ['asignar'])) {
            $data ['page_title'] = "Asignar Perfil";
            $data ['id_usuario'] = $_POST ['txtId'];
            $usuario = $this->usuario_model->getUsername($data);
            $data ['id'] = $usuario ['username'];
            $data ['activa_cliente'] = "";
            $this->load->view('perfil_view/perfil_asignar', $data);
        }
    }

    function cargarDocumento() {
        if ($_GET ['cbxDocumento'] == '') {
            $this->load->view('cliente_view/doc');
        } else if ($_GET ['cbxDocumento'] == INT_DNI) {
            $this->load->view('cliente_view/doc_dni');
        } else {
            $this->load->view('cliente_view/doc_ext');
        }
    }

    function cargarProvincia() {
        $data ['id'] = $_GET ['cbxDepartamento'];
        $provincia = $this->provincia_model->getPorDepartamento($data);
        $data ['provincia'] = $provincia;
        $this->load->view('combos_view/cargar_provincia', $data);
    }

    function cargarProvinciaCliente() {
        $data ['id'] = $_GET ['cbxDepartamento'];
        $provincia = $this->provincia_model->getPorDepartamento($data);
        $data ['provincia'] = $provincia;
        $this->load->view('combos_view/cargar_provincia_cliente', $data);
    }

    function cargarDistritoCliente() {
        /*
         * 02/06/2015
         * se cambio el metodo de llamar a los id de provincia y departamento por medio de get
         * se pasa ambas variables a la funcion getPorProvincia($data, $data1)
         */
        $data ['id'] = $_GET ['prov'];
        $data1 ['cod'] = $_GET ['dept'];
        $distrito = $this->distrito_model->getPorProvincia($data, $data1);
        $data ['distrito'] = $distrito;
        $this->load->view('combos_view/cargar_distrito', $data);
    }

    function cargarDistrito() {
        /*
         * 02/06/2015
         * se cambio el metodo de llamar a los id de provincia y departamento por medio de get
         * se pasa ambas variables a la funcion getPorProvincia($data, $data1)
         */
        $data ['id'] = $_GET ['prov'];
        $data1 ['cod'] = $_GET ['dept'];
        $distrito = $this->distrito_model->getPorProvincia($data, $data1);
        $data ['distrito'] = $distrito;
        $this->load->view('combos_view/cargar_distrito', $data);
    }

    function buscaAsignar() {
        $data ['usuario'] = $_GET ['usuario'];
        $data ['nombre'] = $this->usuario_model->getPorUsername($data);
        $this->load->view('lista_perfil/nombre_usuario', $data);
    }

    function sinperfil() {
        $data ['usuario'] = $_GET ['usuario'];
        $data['nombre'] =  $this->usuario_model->getPorUsername($data);        
        $data ['sin'] = $this->perfil_model->getsinperfil($data);
        $this->load->view('lista_perfil/sin_perfil', $data);
    }

    function conperfil() {
        $data ['usuario'] = $_GET ['usuario'];
        $data ['con'] = $this->perfil_model->getconperfil($data);
        $this->load->view('lista_perfil/con_perfil', $data);
    }

}

?>